package com.loves.admin.util.result;

import com.loves.admin.util.common.CodeEnum;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 统一错误结果处理类
 *
 * @author fig 苏梓泳
 * @version V0.1
 * @className ResultError
 * @date 2019/11/7 13:12
 */
public class ResultError extends ResultApi {

    private Logger log = LoggerFactory.getLogger(ResultError.class);
    /**
     * 错误类型
     *
     * @author fig 苏梓泳
     * @date 2019/11/7 22:49
     */
    private String exception;

    /**
     * 自动捕获异常时调用
     *
     * @param code      状态码
     * @param msg       信息
     * @param exception 错误类型
     * @return ResultError
     * @author fig 苏梓泳
     * @date 2019/11/7 22:49
     * @params [code, msg, exception]
     */
    public ResultError(String code, String msg, String exception) {
        super.setCode(code);
        super.msg = msg;
        this.exception = exception;
    }

    /**
     * 失败调用（默认code）
     *
     * @param msg 信息
     * @return ResultError
     * @author fig 苏梓泳
     * @date 2019/11/7 22:51
     * @params [msg]
     */
    ResultError(String msg) {
        super.setCode(CodeEnum.ERROR.getCode());
        super.msg = msg;
        this.exception = ResultError.class.getName();
        log.error("\n Error: " + exception + "\n Message: " + msg);
    }

    /**
     * 失败调用（自定义coed，自定义msg）
     *
     * @return ResultError
     * @author fig 苏梓泳
     * @date 2019/11/7 22:52
     * @params [msg, code]
     */
    ResultError(String msg, String code) {
        super.setCode(code);
        super.msg = msg;
        this.exception = ResultError.class.getName();
        log.error("\n Error: " + exception + "\n Message: " + msg);
    }

    /**
     * 本类不可实例化
     *
     * @author fig 苏梓泳
     * @date 2019/11/7 22:53
     */
    private ResultError() {
    }

    public String getException() {
        return exception;
    }

    public void setException(String exception) {
        this.exception = exception;
    }
}
